package ungp.sampleng.test.veiculo;
import org.junit.runner.Description;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.stereotype.Component;
import ungp.sampleng.backend.entity.Condutor;
import ungp.sampleng.backend.entity.Veiculo;
import ungp.sampleng.backend.repository.VeiculoRepository;
import ungp.sampleng.backend.util.Application;
import ungp.sampleng.backend.util.ApplicationContextProvider;
import ungp.sampleng.test.Condition;
public class VeiculoResourceCondition extends Condition {
public static ThreadLocal<Veiculo> OBJECT = new ThreadLocal<>();
@Autowired
VeiculoRepository repository;
@Override
public void prepare(Description description) {
MongoOperations mongoOperation = (MongoOperations) ApplicationContextProvider.getApplicationContext().getBean("mongoTemplate");
Veiculo veiculo = createVeiculo();
Condutor proprietario = veiculo.getProprietario();
mongoOperation.insert(proprietario);
mongoOperation.insert(veiculo);
OBJECT.set(veiculo);
}
@Override
public void done(Description description) {
MongoOperations mongoOperation = Application.getMongoOperations();
mongoOperation.dropCollection(Veiculo.class);
mongoOperation.dropCollection(Condutor.class);
}
public static Veiculo createVeiculo() {
Veiculo veiculo = new Veiculo();
veiculo.setPlaca("ABC0123");
veiculo.setRenavam("5451355435453");
Condutor proprietario = new Condutor();
proprietario.setCpf("11122233344");
proprietario.setNome("John Java");
proprietario.setCnh("1234567890");
proprietario.setProprietario(true);
veiculo.setProprietario(proprietario);
return veiculo;
}
}